import { IPSAppDEView } from './ipsapp-deview';
import { IPSAppWF } from '../wf/ipsapp-wf';
import { IPSAppWFVer } from '../wf/ipsapp-wfver';
import { IPSWFVersion } from '../../wf/ipswfversion';
import { IPSWorkflow } from '../../wf/ipsworkflow';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSAppDEWFView
 */
export interface IPSAppDEWFView extends IPSAppDEView {
  /**
   * 应用工作流
   *
   * @type {IPSAppWF}
   */
  getPSAppWF(): IPSAppWF | null;

  /**
   * 应用工作流
   *
   * @type {IPSAppWF}
   */
  get psAppWF(): IPSAppWF | null;

  /**
   * 应用工作流（必须存在）
   *
   * @type {IPSAppWF}
   */
  getPSAppWFMust(): IPSAppWF;

  /**
   * 应用工作流版本
   *
   * @type {IPSAppWFVer}
   */
  getPSAppWFVer(): IPSAppWFVer | null;

  /**
   * 应用工作流版本
   *
   * @type {IPSAppWFVer}
   */
  get psAppWFVer(): IPSAppWFVer | null;

  /**
   * 应用工作流版本（必须存在）
   *
   * @type {IPSAppWFVer}
   */
  getPSAppWFVerMust(): IPSAppWFVer;

  /**
   * 工作流版本对象
   *
   * @type {IPSWFVersion}
   */
  getPSWFVersion(): IPSWFVersion | null;

  /**
   * 工作流版本对象
   *
   * @type {IPSWFVersion}
   */
  get psWFVersion(): IPSWFVersion | null;

  /**
   * 工作流版本对象（必须存在）
   *
   * @type {IPSWFVersion}
   */
  getPSWFVersionMust(): IPSWFVersion;

  /**
   * 工作流对象
   *
   * @type {IPSWorkflow}
   */
  getPSWorkflow(): IPSWorkflow | null;

  /**
   * 工作流对象
   *
   * @type {IPSWorkflow}
   */
  get psWorkflow(): IPSWorkflow | null;

  /**
   * 工作流对象（必须存在）
   *
   * @type {IPSWorkflow}
   */
  getPSWorkflowMust(): IPSWorkflow;

  /**
   * 流程交互模式
   * @type {boolean}
   */
  wFIAMode: boolean;
}
